Continued Learning: The Beauty of Maintenance - Kent Beck - DDD Europe 2020
https://youtu.be/3gib0hKYjB0
DDD Europe 2020 での Kent Beckの講演。
hr.icon
『Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design』に言及しながら、couplingとcohesionについて話しているkoma.icon
ソフトウェア開発においてはメンテナンスにより多くの時間を費やす。ソフトウェアは変更される。koma.icon
couplingの元々の定義の話:15分くらいのところ
ソフトウェアのコストはだいたい変更のコストで、変更の中でも特に高価な変更(これはそれほど多くはない)のコストと近似できる。どういう変更が高価になるかというと、Aを変えたらBを変える必要があり、Bを変えるとCを変える必要があり……とカスケードしていくものがそれになる。だからcouplingという概念が重要。
『Smalltalk Best Practice Patterns』と『実装パターン』に言及している
cohesionの話(28分くらいから)
あるelement A のsubelement同士がcoupledである度合いがAがcohesiveな度合い
couplingのコストとdecouplingのコストのトレードオフを設計者は考えないといけないという話をしている
"エクストリームプログラミングではソフトウェアライフサイクルの99%をメンテナンスにする"
MCETMEC(!!)
"Behavior Change"と"Structual Change"は分けろ(PRを別にしよう)というのは、Tidy First? by Kent Beck - RailsConf 2020 CE でもしていた kakutani.icon
振る舞いの変更は"irreversible"だから慎重に。構造の変更はどうとでもなるから気軽に(だからPRを分けるべきだ)
リファクタリングの話といえばそうかもしれないが、説明の仕方としてはナルホド感がある kakutani.icon
「ウォーターフォールが復活の兆しをみせている…」(フィードバックサイクルが長くなっているから? もうちょっと文脈があったと思うんだけど、つかみきれなかった。そうなんだあ、という気持ち kakutani.icon)